Auto-Recover

SoftwareShield System Feature Guide > License Recovery > Auto-Recover

## Auto-Recover

Before reading the rest of this page, you should already understand the basics of license recovery. If not, please read License Recovery in this Feature Guide.

Auto-Recover is an option you can set in your license project before you compile it for distribution. When set, in the case that an inconsistent state arises which could possibly be recovered from using this option, an attempt to do so is made.

If you enable this option, an attempt to Auto-Recover will be made if:

1. During the scope of the StartUp call, none of the Alias Files were found, but the Virgin Registry Data (if any) was found. This indicates that the Alias Files have been purposefully deleted, but the software had indeed been run on the machine before. This is an inconsistent state.

2. During the scope of the StartUp call, all of the Alias Files were found, but at least one of them either did not corroborate (was out of sync) or had been internally altered (tampered with). This is an inconsistent state.

To best understand when and where a license will be Auto-Recover during the scope of the StartUp call, please have a copy of the SoftwareShield ClientProtector Control Flow Charts on hand as you read the rest of this section.

If one of the above inconsistent states arises and you have set the option to Auto-Recover, the following occurs:

1. The license is forced to recover. The specific actions that happen during the recover process is covered in detail in License Recovery.

Note that Auto-Recover will synchronize all the Alias Files with the current Main License File, regardless of its state. This happens even if one of the Hidden Alias Files (for example) was actually a more recent copy of the license and it contained the true state of the license before the inconsistent state arose.

### Example

> If the user somehow deleted the Main License File and you gave them a new fresh copy, if you also had Auto-Recover on, the Alias Files would be brought into sync with the new Main License File without them having to do anything but restart your program. However, this might present a problem if the user had already activated their old license, since the new one will not be activated. In this example, you would have to issue a new Activation Code for the user as well.

> Alternatively, in this scenario you could also enable Auto-Replace Main License File. This could potentially allow your software to also recover the activated state as well - without the user doing anything other than dropping the new Main License File you provided in the correct directory.

Using the Auto-Recover option requires no user intervention if one of the above mentioned inconsistent states arises. While this is convenient for you and the user, it is not highly secure because a cracker may be able to make repeated attacks on your software to observe its behaviour without the need to contact you to recover it. It is important to consider the tradeoffs here and make a careful decision about its use.

### More Information

For help on actually setting the Auto-Recover option in your license, see License Behaviour Tab in the SoftwareShield License Manager Reference.

For help on understanding the flow of control during the call to StartUp and how the logic behind Auto-Recover works, see SoftwareShield ClientProtector Control Flow-Charts in the ClientProtector Reference.